Skip to content

Migrate deployment to JReleaser - #77

Merged
alexey-pelykh merged 1 commit into
mainfrom
chore/jreleaser-migration
Mar 1, 2026
Merged

Migrate deployment to JReleaser#77
alexey-pelykh merged 1 commit into
mainfrom
chore/jreleaser-migration

Conversation

@alexey-pelykh

Copy link
Copy Markdown
Owner

Summary

  • Replace direct OSSRH publishing with JReleaser 1.22.0 for GPG signing and Maven Central deployment via the new Sonatype Central Portal API
  • Gradle now stages artifacts to a local directory (lib/build/staging-deploy); JReleaser handles signing + upload
  • Restore build-lib CI job with snapshot publishing on push to main
  • Remove Gradle signing plugin and old OSSRH/GitHubPackages repository configuration

Required secrets update

The following secrets need to be configured in GitHub repo settings before merging:

Secret Purpose
MAVEN_CENTRAL_USERNAME Sonatype Central Portal username
MAVEN_CENTRAL_PASSWORD Sonatype Central Portal token
GPG_PUBLIC_KEY Armored GPG public key
GPG_PRIVATE_KEY Armored GPG private key (already exists)
GPG_PASSPHRASE GPG key passphrase (already exists)

Old secrets OSSRH_USERNAME and OSSRH_TOKEN can be removed after migration.

Verification

Local dry-run confirmed:

  • ./gradlew :lib:publishReleasePublicationToStagingDeployRepository -Puvccamera.version=0.0.0-TEST stages AAR, POM, sources jar, javadoc jar, and checksums to lib/build/staging-deploy/
  • POM metadata (groupId, artifactId, license, developers, SCM) is correct
  • JReleaser config validation passes (only fails on missing secrets, as expected for local env)

Test plan

  • Configure MAVEN_CENTRAL_USERNAME, MAVEN_CENTRAL_PASSWORD, GPG_PUBLIC_KEY secrets
  • Verify CI build-lib job passes on PR (build only, no publish)
  • Merge and verify snapshot publish on push to main
  • Create a test tag to verify full release flow

🤖 Generated with Claude Code

@alexey-pelykh
alexey-pelykh force-pushed the chore/jreleaser-migration branch from e83df2d to a358352 Compare March 1, 2026 06:45
Replace direct OSSRH publishing with JReleaser-based deployment via
Sonatype Central Portal API. Gradle now only stages artifacts to a local
directory; JReleaser handles GPG signing and Maven Central upload.

- Add JReleaser 1.22.0 plugin to version catalog and root build
- Create jreleaser.yml with signing, Maven Central release, and
  snapshot deploy configuration
- Replace OSSRH/GitHubPackages repos with local StagingDeploy in lib
- Remove Gradle signing plugin (JReleaser handles signing)
- Restore build-lib CI job with JReleaser snapshot publishing
- Run staging dry-run on PRs to validate publication before merge
- Update release workflow to use two-step stage + JReleaser deploy

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@alexey-pelykh
alexey-pelykh force-pushed the chore/jreleaser-migration branch from a358352 to 3b1c3e9 Compare March 1, 2026 06:49
@alexey-pelykh
alexey-pelykh merged commit 65b8419 into main Mar 1, 2026
3 checks passed
@alexey-pelykh
alexey-pelykh deleted the chore/jreleaser-migration branch March 1, 2026 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant